--- title: "L2-033 简单计算器" created: 2025-11-28 tags: - 算法 --- # L2-033 简单计算器 ## 题目 [L2-033 简单计算器](https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1336215880692482056&page=1) ![[image-d3d6c627.png]] ## 思路分析 ![[image-ecd03617.png]] ## 代码实现 ```cpp #include using namespace std; #define endl '\n' #define int long long using ll = long long; using ull = unsigned long long; using PII = pair; using Pll = pair; int dx[4] = { -1,0,1,0 }, dy[4] = { 0,1,0,-1 }; const int inf = 0x3f3f3f3f; stack s1; stack s2; bool error=false; int calc(int n2,int n1,char op){ int ans; if(op=='+') ans=n2+n1; else if(op=='-') ans=n2-n1; else if(op=='*') ans=n2*n1; else if(op=='/'){ if(n1==0){ cout<<"ERROR: "<>n; for(int i=0;i>tmp; s1.push(tmp); } for(int i=0;i>op; s2.push(op); } int ans; while(!s1.empty() && !s2.empty()){ int a=s1.top();s1.pop(); int b=s1.top();s1.pop(); char op = s2.top();s2.pop(); ans=calc(b,a,op); if(error) return 0; s1.push(ans); } cout<